Field of the Invention
Embodiments of the present invention generally relate to data analysis and, more specifically, to user interface navigation elements for navigating datasets.
Description of the Related Art
A datasets is oftentimes examined by viewing a portion of the dataset in an application viewport. In such implementations, user interface navigation elements that pan and zoom the current view are used to navigate through the dataset. The same or additional user interface navigation elements also provide a context of which portion of the entire dataset an end-user is currently viewing. Typical user interface navigation elements may include scroll bars for repositioning the current view in the dataset and to provide context, rulers to represent the scale of the current view of the data, context bars for providing the context of the current view relative to the entire dataset, and zoom sliders for adjusting the data resolution of the current view.
Conventional user interface navigation elements and data resolution scaling techniques are generally sufficient for conventionally sized static datasets. Traditionally, applications map a dataset to the display space of an application viewport, and the user interface navigation elements are used to navigate through that particular spatial representation of the dataset. A dataset maps to the display space at a particular data resolution, so that a certain number of pixels represents a certain quantity of data. For instance, 100 pixels in a display space may represent a day's worth of data.
The user interface navigation elements also map to the dataset such that each pixel of a user interface navigation element represents a certain quantity of the dataset. For example, in a scroll bar, the position and size of a scroll thumb on a scroll track represents the position of a current view relative to an entire dataset as well as the amount of data displayed in the current view relative to the total size of the dataset. If a day of data in a dataset that spans 10 days is represented by 100 pixels, then each pixel in a 100 pixel wide scroll bar would map to 10 pixels worth of data in the display space or one tenth of a day of data.
Although the mapping of a dataset to a user interface navigation element is generally sufficient for conventionally sized datasets, large and expanding datasets are difficult to map and scale to existing user interface navigation elements.
For example, one drawback of navigating datasets with traditional user interface navigation elements is that the mapping of a dataset to a given user interface navigation element, such as a scroll bar, can break down as the dataset increases in size and expands. This phenomenon is known as the sub-pixel-pitch problem. The sub-pixel-pitch problem arises because the number of pixels within a scroll bar is finite, and those pixels have to be mapped to the data in the dataset to enable navigation. Consequently, as the dataset expands, each pixel of the scroll bar maps to a larger and larger amount of data. At some point in the dataset expansion, each pixel of a scroll bar represents too large of an amount of data to navigate through the dataset, at a reasonable level of data resolution. The movement of the scroll thumb by even a single pixel results in a large jump through the dataset, completely skipping portions of the dataset.
For instance, if the ten days of data in the example above were expanded to 100 days of data, but the data resolution remained at 100 pixels of display space for each day of data, then each pixel of the scroll bar would map to 100 pixels worth of data or one day of data. If the 100 days of data continued to expand to 200 days of data, but the data resolution remained at 100 pixels of display space for each day of data, then each pixel of the scroll bar would map to 200 pixels worth of data or two days of data. In such a case, the movement of a scroll thumb on the scroll bar by even one pixel would result in a jump through the dataset of two days, completely skipping a day's worth of data.
Another drawback of navigating datasets with traditional user interface navigation elements is that maintaining a section of interest in the viewport while zooming in and out becomes increasingly difficult as the dataset increases in size and expands. The on-screen user interface navigation element traditionally used to control data resolution scaling is a zoom slider, which includes a handle that is moved along a track to change the data resolution. As the handle is moved, the data resolution changes by either zooming in or out from a single zoom pivot location within the viewport. In such an implementation, if the zoom pivot location is located at the center of the viewport, then the current view zooms-in or zooms-out from that center location. Consequently, when the end-user wants to zoom-into a particular section of the current view that is not located close to the center location of the viewport, the end-user may first have to zoom to change the data resolution and then reposition the current view in order to view the desired section of the dataset. For example, if an application is designed to zoom-into the center of the viewport and the end-user zooms in to examine in more detail data located on the left side of the viewport, then the change in data resolution may cause the data the end-user wants to examine to move out of the viewport. In such a case, the end-user would then have to use a scroll bar to move the current view to the left. Repositioning the current view to a different location is not only an extra step, but also becomes increasingly difficult for large and expanding datasets because the scroll bar may skip over the desired location.
As the foregoing illustrates, what is needed in the art is a more effective approach for navigating large and expanding datasets.